home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / slaln2.z / slaln2
Text File  |  1996-03-14  |  6KB  |  199 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAALLLLNNNN2222((((3333FFFF))))                                                          SSSSLLLLAAAALLLLNNNN2222((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLALN2 - solve a system of the form (ca A - w D ) X = s B or (ca A' - w
  10.      D) X = s B with possible scaling ("s") and perturbation of A
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE SLALN2( LTRANS, NA, NW, SMIN, CA, A, LDA, D1, D2, B, LDB, WR,
  14.                         WI, X, LDX, SCALE, XNORM, INFO )
  15.  
  16.          LOGICAL        LTRANS
  17.  
  18.          INTEGER        INFO, LDA, LDB, LDX, NA, NW
  19.  
  20.          REAL           CA, D1, D2, SCALE, SMIN, WI, WR, XNORM
  21.  
  22.          REAL           A( LDA, * ), B( LDB, * ), X( LDX, * )
  23.  
  24. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  25.      SLALN2 solves a system of the form  (ca A - w D ) X = s B or (ca A' - w
  26.      D) X = s B   with possible scaling ("s") and perturbation of A.  (A'
  27.      means A-transpose.)
  28.  
  29.      A is an NA x NA real matrix, ca is a real scalar, D is an NA x NA real
  30.      diagonal matrix, w is a real or complex value, and X and B are NA x 1
  31.      matrices -- real if w is real, complex if w is complex.  NA may be 1 or
  32.      2.
  33.  
  34.      If w is complex, X and B are represented as NA x 2 matrices, the first
  35.      column of each being the real part and the second being the imaginary
  36.      part.
  37.  
  38.      "s" is a scaling factor (.LE. 1), computed by SLALN2, which is so chosen
  39.      that X can be computed without overflow.  X is further scaled if
  40.      necessary to assure that norm(ca A - w D)*norm(X) is less than overflow.
  41.  
  42.      If both singular values of (ca A - w D) are less than SMIN, SMIN*identity
  43.      will be used instead of (ca A - w D).  If only one singular value is less
  44.      than SMIN, one element of (ca A - w D) will be perturbed enough to make
  45.      the smallest singular value roughly SMIN.  If both singular values are at
  46.      least SMIN, (ca A - w D) will not be perturbed.  In any case, the
  47.      perturbation will be at most some small multiple of max( SMIN,
  48.      ulp*norm(ca A - w D) ).  The singular values are computed by infinity-
  49.      norm approximations, and thus will only be correct to a factor of 2 or
  50.      so.
  51.  
  52.      Note: all input quantities are assumed to be smaller than overflow by a
  53.      reasonable factor.  (See BIGNUM.)
  54.  
  55.  
  56. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  57.      LTRANS  (input) LOGICAL
  58.              =.TRUE.:  A-transpose will be used.
  59.              =.FALSE.: A will be used (not transposed.)
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAALLLLNNNN2222((((3333FFFF))))                                                          SSSSLLLLAAAALLLLNNNN2222((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      NA      (input) INTEGER
  75.              The size of the matrix A.  It may (only) be 1 or 2.
  76.  
  77.      NW      (input) INTEGER
  78.              1 if "w" is real, 2 if "w" is complex.  It may only be 1 or 2.
  79.  
  80.      SMIN    (input) REAL
  81.              The desired lower bound on the singular values of A.  This should
  82.              be a safe distance away from underflow or overflow, say, between
  83.              (underflow/machine precision) and  (machine precision * overflow
  84.              ).  (See BIGNUM and ULP.)
  85.  
  86.      CA      (input) REAL
  87.              The coefficient c, which A is multiplied by.
  88.  
  89.      A       (input) REAL array, dimension (LDA,NA)
  90.              The NA x NA matrix A.
  91.  
  92.      LDA     (input) INTEGER
  93.              The leading dimension of A.  It must be at least NA.
  94.  
  95.      D1      (input) REAL
  96.              The 1,1 element in the diagonal matrix D.
  97.  
  98.      D2      (input) REAL
  99.              The 2,2 element in the diagonal matrix D.  Not used if NW=1.
  100.  
  101.      B       (input) REAL array, dimension (LDB,NW)
  102.              The NA x NW matrix B (right-hand side).  If NW=2 ("w" is
  103.              complex), column 1 contains the real part of B and column 2
  104.              contains the imaginary part.
  105.  
  106.      LDB     (input) INTEGER
  107.              The leading dimension of B.  It must be at least NA.
  108.  
  109.      WR      (input) REAL
  110.              The real part of the scalar "w".
  111.  
  112.      WI      (input) REAL
  113.              The imaginary part of the scalar "w".  Not used if NW=1.
  114.  
  115.      X       (output) REAL array, dimension (LDX,NW)
  116.              The NA x NW matrix X (unknowns), as computed by SLALN2.  If NW=2
  117.              ("w" is complex), on exit, column 1 will contain the real part of
  118.              X and column 2 will contain the imaginary part.
  119.  
  120.      LDX     (input) INTEGER
  121.              The leading dimension of X.  It must be at least NA.
  122.  
  123.      SCALE   (output) REAL
  124.              The scale factor that B must be multiplied by to insure that
  125.              overflow does not occur when computing X.  Thus, (ca A - w D) X
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSLLLLAAAALLLLNNNN2222((((3333FFFF))))                                                          SSSSLLLLAAAALLLLNNNN2222((((3333FFFF))))
  137.  
  138.  
  139.  
  140.              will be SCALE*B, not B (ignoring perturbations of A.)  It will be
  141.              at most 1.
  142.  
  143.      XNORM   (output) REAL
  144.              The infinity-norm of X, when X is regarded as an NA x NW real
  145.              matrix.
  146.  
  147.      INFO    (output) INTEGER
  148.              An error flag.  It will be set to zero if no error occurs, a
  149.              negative number if an argument is in error, or a positive number
  150.              if  ca A - w D  had to be perturbed.  The possible values are:
  151.              = 0: No error occurred, and (ca A - w D) did not have to be
  152.              perturbed.  = 1: (ca A - w D) had to be perturbed to make its
  153.              smallest (or only) singular value greater than SMIN.  NOTE: In
  154.              the interests of speed, this routine does not check the inputs
  155.              for errors.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.